package com.xiaoshuidi.cloud.module.contract.convert.contract;

import com.xiaoshuidi.cloud.framework.common.pojo.PageResult;
import com.xiaoshuidi.cloud.module.contract.controller.admin.bill.vo.orderFees.OrderFeesDetailVo;
import com.xiaoshuidi.cloud.module.contract.controller.admin.contract.vo.customerCompany.*;
import com.xiaoshuidi.cloud.module.contract.dal.dataobject.contract.ContractRoomDO;
import com.xiaoshuidi.cloud.module.contract.dal.dataobject.contract.CustomerCompanyDO;
import com.xiaoshuidi.cloud.module.contract.vo.CustomerCompanyApiRespVO;
import com.xiaoshuidi.cloud.module.contract.vo.CustomerCompanyPageApiReqVO;
import com.xiaoshuidi.cloud.module.contract.vo.OrderFeesDetailApiVo;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * 企业客户 Convert
 *
 * @author 合房租赁
 */
@Mapper
public interface CustomerCompanyConvert {

    CustomerCompanyConvert INSTANCE = Mappers.getMapper(CustomerCompanyConvert.class);

    CustomerCompanyDO convert(CustomerCompanyCreateReqVO bean);

    CustomerCompanyDO convert(CustomerCompanyUpdateReqVO bean);

    CustomerCompanyRespVO convert(CustomerCompanyDO bean);

    List<CustomerCompanyRespVO> convertList(List<CustomerCompanyDO> list);

    PageResult<CustomerCompanyRespVO> convertPage(PageResult<CustomerCompanyDO> page);

    CustomerCompanyPageReqVO convert(CustomerCompanyPageApiReqVO bean);

    PageResult<CustomerCompanyApiRespVO> convertApiPage(PageResult<CustomerCompanyDO> page);

    CompanyRentRoomRespVO convert(ContractRoomDO bean);
    OrderFeesDetailApiVo convert(OrderFeesDetailVo bean);

    CustomerCompanyApiRespVO convert2(CustomerCompanyDO companyDoById);
}
